Currently, in a client-server computing environment, it is difficult to upgrade a control program (CP), such as system z/VM to correct known issues and to apply new function while the system continues to run uninterrupted. A very costly known solution, with unpredictable results, is to rewrite the control program. Another known proposed solution is to move all the virtual servers from a primary system to be upgraded to another system temporarily; apply the service upgrade to the primary system; and then move all the virtual servers back to the primary system once the upgrade is completed. However, there are several issues with this proposed solution. Another logical partition (LPAR) is required; the customer is required to perform a great deal of manual synchronization and management; and the primary system is “frozen” and cannot be accessed for extended periods of time since the control program is undergoing a live migration implementation.
As hardware technology (i.e., I/O devices, networking devices, etc.) changes and improves, it is critical that the control program, such as z/VM be updated to support the new hardware developments. Furthermore, it is also critical that the updates be applied in a timely manner. In the current environment, the upgrades take a great deal of time and money to be implemented. Additionally, upgrades to a large number of modules are necessary to support the new developments. This is especially true for complex systems that have existed for a while. As such, the current hardware support is falling behind as compared to the current technology that is available.
As previously stated, it would be very costly and the results would be unpredictable to restructure or rewrite the control program. Although it is a laborious task to properly upgrade the current control program, it would not be in the customer's best interest or efficiently serve the business needs of the customer to forego taking advantage of the technological hardware advancements. As such, it may be advantageous, among other things, to provide a concurrent upgrade mechanism that would allow modifications to the control program to occur while the control program continues to run uninterrupted and without requiring the need for the system to be rebooted.